package org.roblybarger;

import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;

public class XMLTreeNode {
	Element element;
	public XMLTreeNode(Element element) {
		this.element = element;
	}
	public Element getElement() {
		return element;
	}
	public String toString() {
		String str=element.getNodeName();
		if(str.contains(":")) str=str.substring(str.lastIndexOf(":")+1);
//		if(element.getNodeType()==Node.ELEMENT_NODE){
//			NamedNodeMap atts = element.getAttributes();
//			for(int i=0;i<atts.getLength();i++){
//				Attr att = (Attr)atts.item(i);
//				String name = att.getName();
//				String value = att.getValue();
//				
//				if(!name.contains("xmlns")){														
//					str += " " + name + ":" + value;
//				}
//			}
//		}
		return str;
	}
	public String getText() {
		NodeList list = element.getChildNodes();
		for (int i=0 ; i<list.getLength() ; i++) {
			if (list.item(i) instanceof Text) {
				return ((Text)list.item(i)).getTextContent();
			}
		}
		return "";
	}
	
	public XMLTreeNode getParent() {
		if(element.getParentNode().getNodeType()==Node.DOCUMENT_NODE) return null;
		Element parent = (Element)element.getParentNode();
		return new XMLTreeNode(parent);
	}
	public boolean hasParent() {
		if(element.getParentNode().getNodeType()==Node.DOCUMENT_NODE) return false;		
		return true;
	}
}
